﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CajaChica.Clases;
using CajaChica.Interfaces;

namespace CajaChica.Formularios
{
    public partial class frmMaestroUsuarios : CajaChica.Formularios.frmMaestro
    {
        clsUsuarios objUsuarios;
        public frmMaestroUsuarios()
        {
            InitializeComponent();
        }
        
        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public void Imprimir()
        {
            
        }

        public void Cancelar()
        {
            this.textBoxX1.Text = "";
            this.textBoxX2.Text = "";
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiListado;
        }

        public void Limpiar()
        {
            this.textBoxX1.Text = "";
            this.textBoxX2.Text = "";
        }

        public void AsignarPropiedadesGrid()
        {
            grdListado.AutoGenerateColumns = false;
            grdListado.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            grdListado.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            grdListado.Columns[0].DataPropertyName = "USUARIO";
            grdListado.Columns[1].DataPropertyName = "CONTRASEÑA";
            grdListado.Columns[2].DataPropertyName = "ID";
        }

        private void frmMaestroUsuarios_Load(object sender, EventArgs e)
        {
            objUsuarios = new clsUsuarios();
            grdListado.AutoGenerateColumns = false;
            this.grdListado.DataSource = objUsuarios.CargarDatosGridView();
            this.AsignarPropiedadesGrid();
            textBoxX1.CharacterCasing = CharacterCasing.Upper;
            textBoxX2.CharacterCasing = CharacterCasing.Upper;
            textBoxX3.CharacterCasing = CharacterCasing.Upper;
            
        }

        private void sbpNuevo_Click(object sender, EventArgs e)
        {
            sbMantenimiento.ExpandedPanel = sbpNuevo;
            stcMaestro.SelectedTab = stiRegistro;
            textBoxX1.Select();
        }

        private void btnNuevoGuardar_Click(object sender, EventArgs e)
        {
            objUsuarios = new clsUsuarios();
            try
            {
                objUsuarios.Guardar(textBoxX1.Text.Trim(), textBoxX2.Text.Trim());
                MessageBox.Show(
                    "SE AGREGO UN NUEVO USUARIO",
                    "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
                grdListado.DataSource = objUsuarios.CargarDatosGridView();
                sbMantenimiento.ExpandedPanel = sbpVer;
                stcMaestro.SelectedTab = stiListado;
                Limpiar();
            }
            catch (EntityException ex)
            {
                MessageBox.Show(
                    "SE PRODUJO UN ERROR AL REGISTRAR EL NUEVO USUARIO, PUEDE QUE YA ESISTA " + ex.Message,
                    "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
            }
            
        }

        private void btnNuevoCancelar_Click(object sender, EventArgs e)
        {
            this.Limpiar();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiListado;
        }

        private void btnNuevoLimpiar_Click(object sender, EventArgs e)
        {
            this.Limpiar();
        }

        private void btnNuevoSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void sbpModificar_Click(object sender, EventArgs e)
        {
            stcMaestro.SelectedTab = stiListado;
        }

        private void grdListado_DoubleClick(object sender, EventArgs e)
        {
            objUsuarios = new clsUsuarios();
            DialogResult respuesta;
            int codigo;
            string usuario, password;

            usuario = grdListado.CurrentRow.Cells[0].Value.ToString();
            password = grdListado.CurrentRow.Cells[1].Value.ToString();
            codigo = Convert.ToInt32(grdListado.CurrentRow.Cells[2].Value);
            
            respuesta =
                MessageBox.Show(
                    "DESEA EDITAR EL USUARIO" + usuario,
                    "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question);

            if (respuesta == DialogResult.Yes)
            {
                stcMaestro.SelectedTab = stiRegistro;
                textBoxX1.Text = usuario;
                textBoxX2.Text = password;
                textBoxX3.Text = codigo.ToString();

                sbMantenimiento.ExpandedPanel = sbpModificar;
            }
        }

        private void btnModificarSeleccionar_Click(object sender, EventArgs e)
        {
            objUsuarios = new clsUsuarios();
            DialogResult respuesta;
            int codigo;
            string usuario, password;

            usuario = grdListado.CurrentRow.Cells[0].Value.ToString();
            password = grdListado.CurrentRow.Cells[1].Value.ToString();
            codigo = Convert.ToInt32(grdListado.CurrentRow.Cells[2].Value);

            respuesta =
                MessageBox.Show(
                    "DESEA EDITAR EL USUARIO" + usuario,
                    "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question);

            if (respuesta == DialogResult.Yes)
            {
                stcMaestro.SelectedTab = stiRegistro;
                textBoxX1.Text = usuario;
                textBoxX2.Text = password;
                textBoxX3.Text = codigo.ToString();

                sbMantenimiento.ExpandedPanel = sbpModificar;
            }
        }

        private void btnModificarCancelar_Click(object sender, EventArgs e)
        {
            this.Limpiar();
            this.sbMantenimiento.ExpandedPanel = sbpVer;
            this.stcMaestro.SelectedTab = stiListado;
        }

        private void btnModificarGuardarCambios_Click(object sender, EventArgs e)
        {
            objUsuarios = new clsUsuarios();
            try
            {
                objUsuarios.GuardarCambios(int.Parse(textBoxX3.Text.Trim()),
                    textBoxX1.Text.Trim(),
                    textBoxX2.Text.Trim());
                MessageBox.Show(
                "SE HA GUARDADO LOS CAMBIOS",
                "SISTEMA DE CAJA CHICA",
                MessageBoxButtons.YesNo,
                MessageBoxIcon.Question);
                grdListado.DataSource = objUsuarios.CargarDatosGridView();
                sbMantenimiento.ExpandedPanel = sbpVer;
                stcMaestro.SelectedTab = stiListado;
                this.Limpiar();
            }
            catch(EntityException ex)
            {
                MessageBox.Show("SE PRODUJO UN ERROR AL GUARDAR LOS CAMBIOS " + ex.Message,
                    "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
            }
        }

        private void btnModificarSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnEliminarEliminar_Click(object sender, EventArgs e)
        {
            int codigo;
            string usuario;
            objUsuarios = new clsUsuarios();
            codigo = int.Parse(grdListado.CurrentRow.Cells[2].Value.ToString());
            usuario = grdListado.CurrentRow.Cells[0].Value.ToString();
            DialogResult respuesta;
            respuesta = MessageBox.Show(
                "¿DESEA ELIMINAR EL USUARIO " + codigo + "?",
                "SISTEMA DE CAJA CHICA",
                MessageBoxButtons.OK,
                MessageBoxIcon.Question);
            if (respuesta == DialogResult.Yes)
            {
                objUsuarios.Eliminar(codigo);
            }
            grdListado.DataSource = objUsuarios.CargarDatosGridView();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiListado;

        }

        private void btnEliminarSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnVerImprimir_Click(object sender, EventArgs e)
        {
            
        }

        private void btnVerSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
